home *** CD-ROM | disk | FTP | other *** search
/ The Epic Collection 3 / Epic Collection 3, The (1997)(Epic Marketing)[!].iso / useful_tools / toolmanager / goodies / getpubname.lha / GetPubName / MoreIntuition.mod < prev    next >
Text File  |  1992-09-13  |  3KB  |  99 lines

  1.  
  2. (*___________________________________________________________________________
  3. |·| MoreIntuition.mod                                                  |-'|##|
  4. |----------------------------------------------------------------------------|
  5. || 1>                                                                      | |
  6. || 1> :Contents.   Einige Routinen zu Intuition, die ich in mehreren       | |
  7. || 1> :Contents.    Programme verwende                                     | |
  8. || 1> :Author.     Michael `Mick' Hohmann                                  | |
  9. || 1> :Address.    Carl-Schilling-Str. 10; 8701 Kirchheim                  | |
  10. || 1> :Phone.      09 31 / 54 1 55                                         | |
  11. || 1> :Copyright.  Copyrighted Software by ImageArts                       | |
  12. || 1> :Language.   Oberon                                                  | |
  13. || 1> :Translator. AmigaOberon 2.39d                                       | |
  14. || 1> :History.    v1.0  Added LockFrontPubScr()                           | |
  15. || 1> :History.    v1.21 totally rewritten                                 | |
  16. || 1> :History.    v1.3  translated to Oberon                              | |
  17. || 1> :Thanx.      an Bernd Möllemann, Jürgen Weinelt und Steffen Reith    | |
  18. || 1> :Thanx.       für ihre Hilfe bei der Erstellung der Algorythmen      | |
  19. || 1>                                                                      |_|
  20. ||_________________________________________________________________________|/|
  21. ----------------------------------------------------------------------------*)
  22.  
  23. MODULE MoreIntuition;
  24.  
  25. IMPORT
  26.   E:=Exec,
  27.   I:=Intuition,
  28.   SYSTEM,
  29.   Strings;
  30.  
  31.  
  32. CONST
  33.   versionString      = "$VER: MoreIntuition 1.21 (Thursday 23 Jul 1992)";
  34.  
  35.  
  36. TYPE
  37.   String             = ARRAY I.maxPubScreenName+1 OF CHAR;
  38.   StringPtr          = POINTER TO String;
  39.  
  40. (* ************************************************************************** *)
  41.  
  42. PROCEDURE LockFrontPubScr*(VAR pubName:ARRAY OF CHAR):I.ScreenPtr;
  43.  
  44. VAR pubScr,frontScr  : I.ScreenPtr;
  45.     pubScrList       : E.ListPtr;
  46.     pubNamePtr       : StringPtr;
  47.     rootScr          : I.ScreenPtr;
  48.     intuiLock        : LONGINT;
  49.     dummy            : BOOLEAN;
  50.  
  51. BEGIN
  52.  
  53.   (** Initialisierungen **)
  54.   pubScr:=NIL;
  55.   rootScr:=NIL;
  56.   dummy:=TRUE;
  57.  
  58.   IF pubName="" THEN
  59.     (** Pointer des vordersten Screens holen **)
  60.     intuiLock:=I.LockIBase(0);
  61.     frontScr:=I.int^.firstScreen;
  62.     I.UnlockIBase(intuiLock);
  63.  
  64.     (** PubScreenListe locken **)
  65.     pubScrList:=I.LockPubScreenList();
  66.  
  67.     (** Sucht nach dem vordersten Screen in der PubScreenListe **)
  68.     LOOP
  69.       pubNamePtr:=SYSTEM.VAL(StringPtr,I.NextPubScreen(pubScr,pubName));
  70.       pubScr:=I.LockPubScreen(pubNamePtr^);
  71.  
  72.       IF (pubScr=NIL) OR (pubScr=rootScr) THEN pubScr:=I.LockPubScreen(NIL); EXIT END;
  73.       IF (pubScr=frontScr) THEN EXIT END;
  74.  
  75.       I.UnlockPubScreen(NIL,pubScr);
  76.  
  77.       IF dummy THEN
  78.        rootScr:=pubScr;
  79.        dummy:=FALSE
  80.       END
  81.     END;
  82.  
  83.     (** PubScreenList unlocken **)
  84.     I.UnlockPubScreenList()
  85.   ELSE
  86.    pubScr:=I.LockPubScreen(pubName)
  87.   END;
  88.  
  89.  (** Und nun den Pointer auf den gelockten Screen zurückgeben **)
  90.  RETURN pubScr
  91.  
  92. END LockFrontPubScr;
  93.  
  94. (* ************************************************************************** *)
  95.  
  96. BEGIN
  97.  
  98. END MoreIntuition.
  99.